class BinarySearch{
    public static void main(String[] a){
        System.out.println(new BS().Start(20));
    }
}
// This class contains an array of integers and
// methods to initialize, print and search the array
// using Binary Search

class BS{
    int[] number ;
    int size ;

    // Invoke methods to initialize, print and search
    // for elements on the array
    public int Start(int sz){
         int aux01 ;
         int aux02 ;
         aux01 = this.Init(sz);
         aux02 = this.Print();
         if (this.Search(8)) System.out.println(1) ;
         else System.out.println(0) ;
         if (this.Search(19)) System.out.println(1) ;
         else System.out.println(0) ;
         if (this.Search(20)) System.out.println(1) ;
         else System.out.println(0) ;
         if (this.Search(21)) System.out.println(1) ;
         else System.out.println(0) ;
         if (this.Search(37)) System.out.println(1) ;
         else System.out.println(0) ;
         if (this.Search(38)) System.out.println(1) ;
         else System.out.println(0) ;
         if (this.Search(39)) System.out.println(1) ;
         else System.out.println(0) ;
         if (this.Search(50)) System.out.println(1) ;
         else System.out.println(0) ;

         return 999 ;
    }


    // Search for a specific value (num) using
    // binary search
    public boolean Search(int num){
         boolean bs01 ;
         int right ;
         int left ;
         boolean var_cont ;
         int medium ;
         int aux01 ;
         int nt ;

         aux01 = 0 ;
         bs01 = false ;
         right = number.length ;
         right = right - 1 ;
         left = 0 ;
         var_cont = true ;
         while (var_cont){
             medium = left + right ;
             medium = this.Div(medium);
             aux01 = number[medium] ;
             if (num < aux01) right = medium - 1 ;
             else left = medium + 1 ;
             if (this.Compare(aux01,num)) var_cont = false ;
             else var_cont = true ;
             if (right < left) var_cont = false ;
             else nt = 0 ;
         }

         if (this.Compare(aux01,num)) bs01 = true ;
         else bs01 = false ;
         return bs01 ;
    }

    // This method computes and returns the
    // integer division of a number (num) by 2
    public int Div(int num){
         int count01 ;
         int count02 ;
         int aux03 ;

         count01 = 0 ;
         count02 = 0 ;
         aux03 = num - 1 ;
         while (count02 < aux03) {
             count01 = count01 + 1 ;
             count02 = count02 + 2 ;
         }
         return count01 ;
    }


    // This method compares two integers and
    // returns true if they are equal and false
    // otherwise
    public boolean Compare(int num1 , int num2){
         boolean retval ;
         int aux02 ;

         retval = false ;
         aux02 = num2 + 1 ;
         if (num1 < num2) retval = false ;
         else if (!(num1 < aux02)) retval = false ;
         else retval = true ;
         return retval ;
    }

    // Print the integer array
    public int Print(){
         int j ;

         j = 1 ;
         while (j < (size)) {
             System.out.println(number[j]);
             j = j + 1 ;
         }
         System.out.println(99999);
         return 0 ;
    }


    // Initialize the integer array
    public int Init(int sz){
         int j ;
         int k ;
         int aux02 ;
         int aux01 ;

         size = sz ;
         number = new int[sz] ;

         j = 1 ;
         k = size + 1 ;
         while (j < (size)) {
             aux01 = 2 * j ;
             aux02 = k - 3 ;
             number[j] = aux01 + aux02 ;
             j = j + 1 ;
             k = k - 1 ;
         }
         return 0 ;
    }

}

